我真的迷失了重定向htaccess的所有规则,我无法找到解决问题的完美解决方案。 我正在尝试重定向看起来像这样的网址:
http://mywebpage.eu/path/to/site/LANGUAGE/PAGE
谁应该重定向到
http://mywebpage.eu/path/to/site/index.php?lang=LANGUAGE&page=PAGE
但有时他们可能没有PAGE或LANGUAGE
http://mywebpage.eu/path/to/site/LANGUAGE/
http://mywebpage.eu/path/to/site/PAGE/
谁应该重定向到
http://mywebpage.eu/path/to/site/index.php?lang=LANGUAGE&page=
http://mywebpage.eu/path/to/site/index.php?lang=&page=PAGE
(所有这些示例都可能以“ / ”结尾)
当我最终获得某些工作的一部分时,我的所有css / images / js / include(php)都因为添加了该虚拟子文件夹而导致404错误“/ LANGUAGE /"...
RewriteEngine on
RewriteBase /path/to/site/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z]{2})/(.*)$ index.php?lang=$1&page=$2 [L,QSA]
非常感谢您的帮助。
答案 0 :(得分:2)
有这样的话:
RewriteEngine on
RewriteBase /path/to/site/
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([a-z]{2})(?:/(.*))?/?$ index.php?lang=$1&page=$2 [L,QSA]
RewriteRule ^(\w+)/?$ index.php?lang=&page=$1 [L,QSA]
对于css / js / images,您可以在页面HTML <head>
的{{1}}部分下方添加此内容,以便从该基本网址解析每个相对网址不是来自当前页面的URL。