[英]htaccess rewrite regex issue
我当前的网址是:
http://www.domain.com/param1/ID
但是我需要以下URL来显示当前URL的内容:
http://www.domain.com/param2/param1/ID-page-name
因此,当加载具有该URL的页面时:
http://www.domain.com/param2/param1/ID-page-name
该网址的内容应显示:
http://www.domain.com/param1/ID
基本上去除了param2
和page-name
。
以下代码在htaccess文件中不起作用:
RewriteCond %{REQUEST_URI} ^/([^/]*)/param1/([^/]*)
RewriteRule ^/([^/]*)/param1/([^/]*)$ /param1/$2
请帮忙。
编辑 :看起来这行RewriteEngine On
导致500服务器错误。 不知道那会是什么。 在httpd.conf
启用了ModRewrite
。
编辑2 :我当前的htaccess文件:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/gif A2592000
ExpiresByType image/png A2592000
ExpiresByType image/jpg A2592000
ExpiresByType image/x-icon A2592000
ExpiresByType application/x-javascript A604800
</IfModule>
<IfModule mod_headers.c>
<FilesMatch "\.(jpg|jpeg|png|gif|swf|ico)$">
Header set Cache-Control "max-age=2592000, public"
</FilesMatch>
</IfModule>
redirect /url1 http://www.domain.com/url2
#RewriteEngine On
当我取消注释最后一行RewriteEngine On
-发生500错误。
尝试:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^[^/]+/([^/]+)/([^-]+)- /$1/$2 [L]
这应该工作:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)/param1/([0-9]+)-(.*)$ /param1/$2 [L]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.