.htaccess影响其他文件网址

时间:2016-03-12 12:46:23

标签: apache .htaccess mod-rewrite seo

我正在尝试使.htaccess规则不影响其他文件网址

示例 我的.htaccess规则是

RewriteEngine On
RewriteRule ^([^/]*)$ /tr/hp.php?q=$1 [L]

我的网站网址

mydomain.com/keywords

关键字的一切都很好,但是当我尝试打开robots.txt

mydomain.com/robots.txt

OR

mydomain.com/images.jpg

任何其他文件网址

重定向/tr/hp.php?q=filename

哪个.htaccess重写规则对两者都有效?

2 个答案:

答案 0 :(得分:1)

尝试:

RewriteEngine On
#--exclude real directories
RewriteCond %{REQUEST_FILENAME} !-d
#--and files
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ /tr/hp.php?q=$1 [L]

答案 1 :(得分:0)

您还必须阻止匹配任何带有点的请求模式:

RewriteEngine On
RewriteRule ^([^/.]*)$ /tr/hp.php?q=$1 [L]

当然可以进一步完善这种模式。

或者有些人喜欢使用RewriteCond阻止重写对文件系统中实际存在的文件或文件夹的请求:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

但这是你必须决定的事情。例如,robots.txt等资源是以动态方式提供的,这无济于事......