我在我的.htaccess文件上写了一些代码,它允许使用SEO友好的URL而不是丑陋的查询string。 以下代码将浏览器中的SEO友好版本重写为服务器上的查询string版本。
RewriteEngine On RewriteRule ^SEO/([^/]*)/$ /directory/script.PHP?size=large&colour=green&pattern=$1 [L]
所以这个丑陋的
http://www.mysite.com/directory/script.PHP?size=large&colour=green&pattern=striped
现在是美丽的
OpenShift并在.htaccess中redirect
codeigniter 3 – 删除index.PHP:在Linux上的错误404,但在Windows上工作正常
重写域和path
http://www.mysite.com/directory/SEO/striped/
只是为了解释一下代码; SEO是为URL添加更多关键字, /directory/是.htaccess文件所在的目录,参数size=large和colour=green永远不会改变,而pattern=$1可以是很多不同的值。
上面的代码完美地工作。 但是,问题是我现在坚持两个指向完全相同的内容的url。 为了解决这个问题,我想301将旧的,丑陋的查询stringredirect到SEO友好的URL。 到目前为止,我所尝试过的方法都行不通 – 而Google今天也不是特别友善。
任何人都可以提供工作代码,把我的.htaccess文件redirect到新的URL,同时保留重写? 谢谢!
用htaccess阻止特定的文件扩展名?
带锚链接的mod_rewrite
“RewriteEngine不允许在这里”使用XAMPP .htaccess错误
.htaccess更改需要多长时间才能生效?
我怎么能redirect到一个目录中的所有文件到另一个目录?
这应该做的伎俩:
RewriteEngine On
## Redirect to pretty urls # The '%1' in the rewrite comes from the group in the prevIoUs RewriteCond RewriteCond %{REQUEST_URI} !SEO RewriteCond %{QUERY_STRING} ^size=large&colour=green&pattern=([a-zA-Z]*)$ RewriteRule (.*) /directory/SEO/%1/? [L,R=301] ## Rewrite to long url,additional parameter at the end will cause ## the internal redirect not to match the prevIoUs rule (would cause redirect loop) RewriteRule ^directory/SEO/([^/]*)/$ /directory/script.PHP? size=large&colour=green&pattern=$1&rewrite [L]
您还可以根据需要匹配大小和颜色,也可以将它们更改为正则表达式组,并使用相应的%N
希望这可以帮助。
没有测试,但这可能工作…
RewriteRule ^ directory / script.PHP?size = large&color = green&pattern =(。*)$ / SEO / $ 1 /? [R = 301,NE,NC,L]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。