2013-05-07 60 views
0

我想在我剛剛構建的網站上設置一個漂亮的固定鏈接系統,並且沒有任何影響。我要麼得到500錯誤,要麼永久鏈接不起作用,並且/或者它打破了所有CSS和圖像的鏈接,同時如果嘗試使用永久鏈接結構仍然會給404。自定義網站上的mod_rewrite的固定鏈接生成

這裏是我的.htaccess代碼:

RewriteEngine On 
RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ /main/index.php?act=$1&sub=$2&id=$3 [L] 

我希望它轉換鏈接像index.php?act=admin&sub=edit-product&id=5/admin/edit-product/5,同時包括任何在兩者之間。例如,如果一個URL有一個ID呼叫但不是一個子呼叫,它仍然可以工作。

任何幫助將不勝感激。

UPDATE:

我已經加入RewriteBase /和它現在做的事情,但固定鏈接不能正常工作。

有沒有一種方法可以找出重寫的URL實際指向的位置?

看來,使用所有重寫規則的完整URL可以正常工作,但不是隻需要其中一部分的URL。

+0

看那裏http://stackoverflow.com/questions/16423258/php-mvc-with-better-htaccess/16423418 – Eugene 2013-05-07 16:37:54

+0

好了,我的代碼現在是'RewriteEngine敘述上 的RewriteCond%{} REQUEST_FILENAME!-f 的RewriteCond% {REQUEST_FILENAME}!-d RewriteRule ^([^ /] +)/([^ /] +)(/([^ /] +))$ main/index.php?act = $ 1&sub = $ 3&id = $ 4'。它不會破壞CSS /圖像鏈接,但重定向不起作用。 – Adam 2013-05-07 16:45:50

+0

您可以嘗試使用以下規則將所有重定向到index.php:RewriteRule ^。* $ index.php [NC,L]並在您的PHP應用程序中解析$ _SERVER ['REQUEST_URI'] – Eugene 2013-05-07 16:49:21

回答

1

我使用這個重寫代碼的.htaccess在我的項目:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 

此代碼通存在請求(靜態文件和等)原樣,但所有其他重定向到index.php。請求uri int PHP爲

$_REQUEST['REQUEST_URI'] 

在PHP中,我們(或我們的框架)可以像我們一樣解析它。

相關問題