2011-05-24 77 views
1

我有一個主頁爲/var/www/mysite/index.html 的網站現在我想直接www.mysite.com/x2312d/var/www/mysite/app/pass.php?id=x2312d 我該怎麼做? 我應該在哪裏創建.htaccess文件以及它應該包含哪些內容?Apache 2中的URL縮短

+0

嘿看看這些。 http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html http://forum.modrewrite.com/viewtopic.php?f=4&t=3102他們應該讓你開始。現在去學習。如果你有一個特定的問題回來。 – martynthewolf 2011-05-24 07:36:07

+0

@martswite這是一個特定的問題,它被問過幾十億次 – 2011-05-24 07:40:46

+0

@勞倫斯Cherone我不會說它是_specific_,這個問題在重寫方面非常一般。也沒有關於OP已經嘗試/調查的證據。現在,如果他說,我已經做了1,2,3,而上面的錯誤是不成立的,那麼這就是_specific_。現在,這是一個「給我teh codez」的問題:-P – martynthewolf 2011-05-24 07:45:11

回答

3
在你的根

/var/www

的.htaccess

RewriteEngine On 
RewriteBase/
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteRule ^([^\.]+)$ /app/pass.php?id=$1 [NC,L] 
+0

嗨,我做到了這一點,它給了404.我的網站,可用/默認的文檔根目錄是/ var/www。那是問題嗎? – user557348 2011-05-24 07:58:04

+0

現在工作謝謝:) – user557348 2011-05-24 08:07:34

+1

np,modrewrite起初可能會很複雜,請查看:http://corz.org/serv/tricks/htaccess2.php關於用通俗寫法重寫大多數東西的方法 – 2011-05-24 08:13:06

1

把.htaccess文件在/ var/WWW/mysite的/應用/。我假設你的文檔根目錄是/ var/WWW/mysite的/

確保Apache 2的有重寫模塊啓用

的.htaccess:

RewriteEngine On 

#allows you to still access static items in this dir 
RewriteCond %{REQUEST_URI} !\.(php|css|js|gif|png|jpe?g)$ 

#sent it all to pass script 
RewriteRule (.*)$ pass.php [L] 

我喜歡這種方法,假設通過一些控制器。我的一個rest api控制器從$ _SERVER全局變量中手動解析/ x23123d,但是你可以使用一個不同的重寫器來使它位於$ _GET/$ _ REQUEST ['id']全局變量中。

是這樣的:

RewriteRule ^app/(.+)$ app/pass.php?id=$1 [PT,L,QSA] 

很好的參考:http://httpd.apache.org/docs/2.0/misc/rewriteguide.html

http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewriterule

編輯:差點忘了,別忘了辦理尾隨斜線了。