RewriteEngine on
RewriteCond %{http_HOST} ^domain.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/$ $1.php
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]
第一条规则正在工作,因此它正确地重定向浏览器。但是,第二条规则应该是剥离.php,以便访问者可以转到domain.com/services而不是domain.com/services.php,但不起作用。第三个条件增加了/到最后,起作用。mod_rewrite删除.php不工作
任何想法,为什么剥.PHP给了我一个404错误:
The requested URL /s/p/domain.com/public/packing-tips.php was not found on this server?
有什么建议?
如果你直接去URL(最后带.php),它会显示你的网页?例如,如果您访问domain.com/services.php或domain.com/packing-tips.php,那么您是否会收到404? –
不,我没有得到404,页面显示完全如其应该。但是,当我从地址栏手动删除.php时,它会显示上述错误。 – brianrhea