我正在关注我网站的网址结构 ex url结构是:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([A-Za-z-\s0-9]+)$ service_detail.php?seo=$1 [L,QSA]
</IfModule>
等 这是案例1 现在检查我的htaccess代码
http://www.example.com/contact-us.php
http://www.example.com/openings.php
我的htaccess完全重写了url并重定向到service_detail.php页面(我没有问题)
现在第二个案例是我有一些其他网址有物理页面示例
http://www.example.com/contact-us
http://www.example.com/openings
如果我从网址中删除.php,那么htaccess认为这是一个重定向网址,并重定向到service_detail.php页面
而不是我需要一个规则,如果我联系我们,如果在网址中存在与我们联系,那么它将重定向到contact-us.php页面或者openss.php页面
但没有.php扩展名 喜欢这个
left: auto
提前致谢
答案 0 :(得分:0)
这是因为您的模式^([A-Za-z-\s0-9]+)$
与contact-us
以及所有其他类似的请求不匹配,这些请求在您的服务器上不作为文件和directorie存在。要解决这个问题:
在下面的RewriteEngine on
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+)/?$ /$1.php [L]
这会将无扩展名的php请求重写到原始目的地,即:/contact-us
到/contact-us.php
。