Htaccess在浏览器中重写网址但不影响网页(仅限外观网址更改)

时间:2017-03-21 11:20:19

标签: php apache .htaccess url mod-rewrite

我正在努力解决在不改变内容的情况下重写网址的问题。

我想在浏览器网址中显示不同的网址,但内容仍然相同

我的网址是http://fortin.agency/audit-seo/frtcrwl/health_check/report/578/leasingautomobile.ro

我想把它改成http://fortin.agency/audit-seo/578/leasingautomobile.ro

我做了什么:

Options +FollowSymlinks
RewriteEngine on

RewriteRule ^frtcrwl/health_check/report/(.*)$ /$1 [L,NC,R=301,NE]

不起作用......有任何帮助吗?

编辑

网址中的578是动态的,也是“leasingautomobile.ro”

编辑#2

最终代码:

Options +FollowSymlinks
RewriteEngine on

RewriteCond %{REQUEST_URI} ^/(audit-seo)/frtcrwl/health_check/report/(.+)$ [NC]
RewriteRule ^ /%1/%2 [L,R=301,NE]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php?/$0 [PT,L] 

仍未按预期工作,因为它会抛出错误404.路径可以保持不变吗?因为浏览器链接中的URL现在是完美的。感谢@anubhava到现在为止

2 个答案:

答案 0 :(得分:1)

将规则更改为此并在frtcrwl/.htaccess

内重新测试
Options +FollowSymlinks
RewriteEngine on
RewriteBase /audit-seo/frtcrwl/

RewriteCond %{THE_REQUEST} \s/+(audit-seo/frtcrwl)/health_check/report/(\S+) [NC]
RewriteRule ^ /%1/%2 [L,R=301,NE]

RewriteRule ^\d+/[^/]+/?$ index.php?/health_check/report/$0 [L,NC,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php?/$0 [PT,L,QSA]

答案 1 :(得分:1)

如果您希望能够从http://fortin.agency/audit-seo/frtcrwl/health_check/report/578/leasingautomobile.ro访问http://fortin.agency/audit-seo/578/leasingautomobile.ro,则可以使用以下规则:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^audit-seo/(.+)$ audit-seo/frtcrwl/health_check/report/$1 [L,NC]