用htaccess重写子目录下的文件名会导致错误404



我正在做一个简单的html/css网站在apache服务器

我将主目录中所有带有htaccess文件的文件的url从www.mydomain.com/about.html更改为www.mydomain.com/a-propos-de-nous:

Options +FollowSymlinks 
RewriteEngine On 
RewriteRule a-propos-de-nous /about.html

它工作得很好!

但是当我尝试对子目录/en中的文件做同样的事情时,它给我错误404:我在子目录/en下创建了一个新文件(en.htaccess),文件内容为:

Options +FollowSymlinks 
RewriteEngine On
RewriteBase /en/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule about-us /en/about.html [L]

我希望有www.mydomain.com/about-us工作,但它给我错误404。

但我总是有404错误,我错过了什么?

Thanks for help

如果你想重写www.mydomain.com/about-us,那么重写规则必须在root .htaccess中,因为在你的原始URI中没有/en/。把你的根目录。htaccess改成这样:

Options +FollowSymlinks 
RewriteEngine On
RewriteRule a-propos-de-nous about.html [L,NC]
RewriteRule ^about-us en/about.html [L,NC]

尝试更改您的htaccess规则文件如下一次。请确保在测试url之前清除浏览器缓存。

RewriteOptions InheritBefore
Options +FollowSymlinks 
RewriteEngine On
RewriteBase /en/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule about-us en/about.html [L]

最新更新