我有以下htaccess文件:htaccess的重定向失敗,多個網址參數
RewriteEngine On
RewriteBase/
# Redirect to remove .php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
# Redirect to "page" for dynamic pages
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ page?url=/$1 [L]
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1%{REQUEST_URI} [R=301,QSA,NC,L]
這讓我定製CMS使用動態URL(http://example.com/some-page,例如),重定向到http://example.com/page?url=some-page從而使CMS可以呈現內容。這一切都很好 - 直到有人添加了一個像http://example.com/something/else這樣的URL。當我吐出url參數:print $_GET['url'];
我得到/something/else.php/else
。
所以看起來像刪除.php指令迷路了,第二個參數重複?謝謝你的幫助。
能removeing從字符串.php爲是一個解決辦法? – GrumpyCrouton
第一條規則應該是這樣做的 - 我知道一個是因爲我有幾個靜態頁面可以很好地顯示(沒有.php)。 –
「'page?url =/$ 1 [L]'」 - 不應該是'page.php'嗎? (否則,你正在依靠mod_rewrite以後再添加擴展與另一個重寫。) – MrWhite