我正试图得到这个不友好的链接:
在使用我的网站时显示为此友好链接:
这是主目录中我的.htaccess文件中的代码:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule homedetails/(.*)/ID/(.*)/PHOTOID/(.*)/ featured1new.php?homedetails=$1&ID=$2&PHOTOID=$3
RewriteRule homedetails/(.*)/ID/(.*)/PHOTOID/(.*) featured1new.php?homedetails=$1&ID=$2&PHOTOID=$3
问题是链接仍然显示网站中的旧方式,但是,如果我将新的RewriteRule方式直接键入浏览器,它可以正常工作。所以这部分工作方式也是我需要的。
我是否应该更改网站上的html代码以匹配/使用RewriteRule? (在这个网站上阅读了很长一段时间后,我认为我不需要这样做)感谢您的帮助
答案 0 :(得分:0)
问题是链接仍然显示网站上的旧方法
您的规则只允许new url format
并在内部将其重写为old format
等效值。
如果您希望old format
重定向到new format
(没有无限循环),则必须添加一些代码。
您可以用这个替换当前代码
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteCond %{THE_REQUEST} \s/featured1new\.php\?homedetails=([^&\s]+)&ID=([^&\s]+)&PHOTOID=([^&\s]+)\s [NC]
RewriteRule ^ /homedetails/%1/ID/%2/PHOTOID/%3? [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^homedetails/([^/]+)/ID/([^/]+)/PHOTOID/([^/]+)/?$ /featured1new.php?homedetails=$1&ID=$2&PHOTOID=$3 [L]
注意:即使此代码重定向old format
,最好用新格式替换您的链接