繁体   English   中英

Apache两个RewriteRules依赖

[英]Apache two RewriteRules dependant

我有一个电子商务网站,我想让它多语言。 到目前为止,英语一直被用作一种默认语言。 下一个URL正在正常工作,并由Google编制索引。

* example.com/article/id-item

因为我需要将其设置为多语言,所以url需要采用这种方式:

* example.com/en/article/id-item -> which is language default
* example.com/fr/article/id-item
* example.com/de/article/id-item

因为我不想受到谷歌的惩罚,因为我目前的网址已被很好地编入索引,而不是使用http://example.com/en/article/id-item我想使用当前的英语网址,所以我的网址应该是这样的:

* example.com/article/id-item -> English
* example.com/fr/article/id-item -> French
* example.com/de/article/id-item -> German

但在内部,要与symfony正确路由,我需要这些内部重定向(在浏览器地址框中看不到):

* example.com/index.php/en/article/id-item -> English
* example.com/index.php/fr/article/id-item -> French
* example.com/index.php/de/article/id-item -> German

所以我一直在测试我的.htaccess并且它不能正常工作:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^index\.php
RewriteRule ^(.*)$ index.php/$1 

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^index\.php/(en|fr|de)
RewriteRule ^index\.php(/?.*)$ en/$1 [L]

这可以通过以下网址进行测试: http//htaccess.mwl.be/使用url example.com/article/id-item作为示例

结果是:输出网址

example.com/index.php/article/id-item调试信息

1 RewriteCond%{REQUEST_FILENAME}! - f满足此条件。

2 RewriteCond%{REQUEST_FILENAME}!-d满足此条件。

3 RewriteCond%{REQUEST_URI}!^ index.php满足此条件。

4 RewriteRule ^(。*)$ index.php / $ 1新网址是example.com/index.php/article/id-item

5 RewriteCond%{REQUEST_FILENAME}! - f满足此条件。

6 RewriteCond%{REQUEST_URI} ^ index.php /(en | fr | de)不满足此条件。

7 RewriteRule ^ index.php(/?。*)$ en / $ 1 [L]此规则未得到满足。

我不理解为什么在规则6中,REQUEST_URI不是规则4的结果。

有没有人知道它会发生什么?

有了这段代码,我想我已经完成了我的重写:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/?(en|fr|de)
RewriteCond %{REQUEST_URI} !^/?index\.php
RewriteRule ^(.*)$ en/$1 [QSA,L,NE]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/?index\.php
RewriteRule ^(.*)$ "index.php/$1" [QSA,L]

但主要的问题是在Symfony / HttpFoundation请求对象中,由于这个原因: https//github.com/symfony/symfony/pull/15354

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM