2015-10-05 97 views
0

更新report是保留字還是mod重寫中的某種特殊字符串?我已將文件名更改爲report1,規則正常工作。刪除php擴展名在mod重寫中不起作用

原始的問題

我不能讓一個特定的文件/www/admin/report.php我重寫規則的工作。我想有PHP擴展取出和類別值追加到/admin/路徑,像這樣:

https://url.com/car/admin/report 

但因爲某些原因URL只能與擴展目前的工作:

https://url.com/car/admin/report.php 

我有取消註釋其他要測試的規則。下面是應該刪除PHP擴展的規則:

RewriteCond %{REQUEST_FILENAME}.php -f 

RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L] 

RewriteCond %{THE_REQUEST} /index\.php [NC] 

RewriteRule ^([^\.]+)$ $1.php [NC,L] 

RewriteCond %{REQUEST_URI} /(admin|search)/(.*) 

RewriteRule ^(.*)/(.*)/(.*)?$ $2/$3?category=$1 [NC,QSA] 
// I make it less specific so it works with any filenames other than report.php as well 

我曾嘗試加入.php最後一個規則,但不會工作,要麼

RewriteRule ^(.*)/(.*)/(.*)?$ $2/$3.php?category=$1 [NC,QSA] 

任何幫助,將不勝感激。

+0

你的.htaccess放在'/ car /'目錄下嗎?你最後的規則應該是做什麼?我沒有看到'?category = ...'的要求 – anubhava

回答

1

你可以嘗試只使用mod_negotiation,並丟棄所有的php擴展規則。只需在你的htaccess文件的某個地方添加選項:

Options +Multiviews