我正在尝试为博客模块编写.htacces重写规则。
if => www.xyz.com/index.php它不应该重定向任何东西
if => www.xyz.com/contactus.php它不应该重定向任何东西
但
if =>的 www.xyz.com/blogs/test-string1-and-string2
(针对博客页面固定的URL图片)
它应该重定向到 blog_details.php?id = $ 1
我试过以下规则。:
RewriteCond %{HTTP_HOST} !/blog/
RewriteRule blogs/(\w+) blog_details.php?id=$1 [NC]
这不是完美的规则。在生成站点地图和Seo结果时会导致问题。
我希望对网址末尾的 .php 等网址进行一些强有力的验证,或者
在blog /后用连字符( - )分隔的单词。然后我可以重定向网址。答案 0 :(得分:0)
首先,您无需在此处查看HTTP_HOST
,因为您没有更改它。
如果这样做,您应该将其与可能的主机名进行比较,而不是与可能的URL进行比较,即
RewriteCond %{HTTP_HOST} !^www.nottherightone.tld$
检查,如果网址未以" .php"结尾和包含连字符,这应该是一种可能性
RewriteCond %{REQUEST_URI} !.php$
RewriteRule blogs/(.*-.*) blog_details.php?id=$1 [NC]
答案 1 :(得分:0)
以下规则适合您:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^blogs/(.+)$ blog_details.php?id=$1 [NC,L,QSA]