有关我的.htaccess文件的快速问题
我想用斜杠将https://myurl.com/en转发到https://myurl.com/en/。
这是我到目前为止的尝试。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.en[^/])$ /$1/ [L,R=301]
我在这里做错了什么?谢谢您的帮助?
答案 0 :(得分:1)
您始终可以为特定位置激活DirectorySlash:
<Location "/en">
DirectorySlash On
FallbackResource /index.php
</Location>
我在这个问题上没有花费太多时间,但是您想在上面的链接中阅读有关此问题的警告。或者,您可以使用其他解决方案:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/en$
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]
如果图片等的相对网址出现问题,请尝试在页面标题中添加以下内容:
<head>
<base href="/" />
<head>
重新启动apache,以使更改生效。如果使用WordPress,请注意执行顺序。 所有重定向规则必须位于路由规则之前。 WordPress规则将所有内容都路由到index.php。
答案 1 :(得分:0)
为确保所有URL均带有斜杠。
以下规则会将https://myurl.com/en
转发到https://myurl.com/en/
,并在末尾加上斜杠。
为域名中的所有URL全局设置尾部斜杠。
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ https://myurl.com/$1/ [L,R=301]
以下规则仅适用于特定的URL段:
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^en$ /en/ [R=301,NC,L]
清除浏览器缓存
一旦您对.htaccess
文件进行了任何更改,就必须先清除浏览器缓存,然后再试一次,或者通过新的隐身浏览模式打开以测试更改,大多数现代浏览器通常都会缓存该网页因此,除非您清除了浏览器缓存,否则您将看不到该操作。