.htaccess重写规则,用于重定向固定模式URL

时间:2015-03-15 10:35:12

标签: php .htaccess redirect

我正在尝试为博客模块编写.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 /后用连字符( - )分隔的单词。然后我可以重定向网址。

2 个答案:

答案 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]