您好我已根据某些来源编写了一个htaccess规则,但我的问题是我希望它有一个干净的网址我已经完成但问题是它不能很好地工作,请参阅下面的图片 现在我现在在服务页面atmt如果我想去另一个页面看起来像这样
网址不会丢弃第一个链接,而是转到下一页添加新链接导致找不到错误..
我一直很难找到解决这个问题的方法,有人可以请告诉我,我的htaccess规则在哪里出错吗?
这是我的.htaccess
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
RewriteCond %{THE_REQUEST} \s/*(.*?)/index\.php [NC]
RewriteRule ^ %1/ [R=302,L]
RewriteCond %{THE_REQUEST} \s/+(.+?)\.php[\s?] [NC]
RewriteRule ^ /%1/ [R=302,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^[^.]*?[^/.]$ %{REQUEST_URI}/ [L,R=302]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^.]+?)/?$ $1.php [L]
答案 0 :(得分:1)
您的规则看起来很好,但看起来这可能是一个相对的URL问题。您的链接可能类似于:
<a href="client">Client</a>
这意味着它会在已存在的任何URI路径的末尾附加client
(在您的示例中,这将是/services/
)。
所以:
在页面标题中添加相对URI基础(在<head> </head>
标记内:
<base href="/" />