htaccess忽略URL的特定部分

时间:2013-09-26 16:30:28

标签: php regex .htaccess mod-rewrite redirect

当网址为/ en /后,我正在尝试将网站的语言更改为英语。当url在域之后具有/ en /后,PHP会更改转换文件。

我的系统将/ en / part添加到所有链接,甚至是CSS文件的URL等。它工作正常,但是当该部分在URL中时我无法访问任何文件。即使/ en / part在那里,我仍然想找到所有的文件和文件夹。

例如:

http://domain.com/en/images/image.png

显示此处的图片

http://domain.com/images/image.png

但它必须将/ en / part保留在URL中,因此语言不会改变。

我在.htaccess文件中有这个:

RewriteEngine on
Options +FollowSymlinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]

这会重定向URL,但会删除/ en / part。 :/

RedirectMatch ^/en/(.*) /$1

甚至可以重定向并保留原始网址?如果没有,是否可以仅在现有文件夹或文件时重定向(并更改URL)?谢谢。 :)

1 个答案:

答案 0 :(得分:1)

将此RedirectMatch行替换为:

RewriteRule ^en/([^.]+\.(?:jpe?g|gif|bmp|png|tiff|css|js))$ /$1 [L,NC]