2017-06-03 107 views
0

我想将旧网址重新导向至新增附加参数htacces - 将旧网址重定向至新

如何防止创建多个youtube参数?

OLDhttp://example.com/lady-gaga-monster

http://example.com/lady-gaga-monster-youtube

目前的htaccess

RewriteEngine on 
RewriteRule ^(.*)-youtube?$ index.php?search=$1&source=youtube [L] 

我加入这行

RewriteRule ^(.*)$ http://example.com//$1-youtube [R=301,L] 

而且在浏览器 http://example.com/lady-gaga-monster-youtube-youtube-youtube-youtube-youtube

回答

1

您创建了一个无限循环的结果。您需要添加的RewriteCond这样,如果请求的URL不“-youtube”结尾的规则将仅适用于:

RewriteEngine on 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
# external rewrite 
RewriteCond %{REQUEST_URI} !-youtube$ 
RewriteRule ^(.*)$ http://example.com/$1-youtube [R=301,L] 
# internal rewrite 
RewriteRule ^(.*)-youtube$ index.php?search=$1&source=youtube [L] 

而且一般提示:你应该总是喜欢在http服务器内这样的规则(虚拟)主机配置,而不是使用动态配置文件(.htaccess样式文件)。这些文件出了名的错误,很难调试,他们真的放慢了服务器。它们仅作为最后一种选择,用于您无法控制主机配置的情况(阅读:真正便宜的托管服务提供商),或者您拥有依赖编写自己的重写规则的应用程序(这是一个明显的安全噩梦)。

+0

嗨@arkascha,非常感谢你回答,但仍然无法工作:) – Anwar

+0

而“仍然不工作”是指什么_exactly_?怎么了?你是否真的清除了你的浏览器缓存?你在http服务器错误日志文件中看到了什么? – arkascha

+0

现在工作后,一点成本。非常感谢你。 – Anwar

相关问题