我正在努力解决可能非常简单的mod_rewrite taks。
这是我的目录结构:
我想要做的是将各种动态创建的URL指向这些特定位置,而不更改地址栏中的URL。
例如:
mydomain.com/one/
mydomain.com/two/
mydomain.com/three/
- >所有人都会阅读 /root/translations/en/index.php
中的内容mydomain.com/one/sub1/sub2/
mydomain.com/two/sub1/sub2/
mydomain.com/three/sub1/sub2/
- >会阅读 /root/translations/en/sub1/sub2/index.php
中的内容mydomain.com/onefr/
mydomain.com/twofr/
mydomain.com/threefr/
- >所有人都会阅读 /root/translations/fr/index.php
中的内容mydomain.com/onefr/sub1/sub2/
mydomain.com/twofr/sub1/sub2/
mydomain.com/threefr/sub1/sub2/
- >会阅读 /root/translations/fr/sub1/sub2/index.php
中的内容我尝试过类似的事情:
RewriteCond %{REQUEST_URI} !\.css$ [NC]
RewriteRule ^/(one|two|three)/$ /_translations/en/ [L]
RewriteCond %{REQUEST_URI} !\.css$ [NC]
RewriteRule ^/(onefr|twofr|threefr)/$ /_translations/fr/ [L]
虽然它适用于默认重定向(例如mydomain.com/one/),但是当我想要更深入时,它会抛出404.
任何线索?
答案 0 :(得分:0)
请尝试以下规则:
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteRule ^/(one|two|three)/(.*) /_translations/en/$2 [L]
RewriteRule ^/(one|two|three)fr/(.*) /_translations/fr/$2 [L]
第一条规则将停止任何可以映射到现有文件的请求,以便通过以下任何规则重写。另外两个规则适用于您描述的两种情况。