为什么我的Url不会丢弃当前页面而是将其添加到新链接中

时间:2016-04-19 02:26:03

标签: .htaccess

您好我已根据某些来源编写了一个htaccess规则,但我的问题是我希望它有一个干净的网址我已经完成但问题是它不能很好地工作,请参阅下面的图片 enter image description here 现在我现在在服务页面atmt如果我想去另一个页面看起来像这样 enter image description here

网址不会丢弃第一个链接,而是转到下一页添加新链接导致找不到错误..

我一直很难找到解决这个问题的方法,有人可以请告诉我,我的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]

1 个答案:

答案 0 :(得分:1)

您的规则看起来很好,但看起来这可能是一个相对的URL问题。您的链接可能类似​​于:

<a href="client">Client</a>

这意味着它会在已存在的任何URI路径的末尾附加client(在您的示例中,这将是/services/)。

所以:

  1. 更改所有链接,使其以“/”
  2. 开头
  3. 在页面标题中添加相对URI基础(在<head> </head>标记内:

    <base href="/" />