【发布时间】:2013-09-28 10:41:46
【问题描述】:
例如,我的根目录中有两个文件:one.php 和 two.php。我想通过这些 url 访问它们,而不必实际拥有物理目录 en+de。
- mydomain.com/en/一个
- mydomain.com/en/两个
- mydomain.com/de/一个
- mydomain.com/de/两个
所以第一个目录将被“忽略”,只需将带有语言设置的 GET 变量传递给 php 文件,第二个目录是没有扩展名的 php 文件。
到目前为止,这就是我在 htaccess 中使用的文件扩展名:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
更新/解决方案
这很有用:.htaccess rule for language detection
这似乎几乎符合我的要求:
RewriteRule ^(en|de|fr)/(.*)$ $2?lang=$1 [L,QSA]
RewriteRule ^(.*)$ $1?lang=en [L,QSA]
还有一个问题
对于 mydomain.com/en/one/id45
如果我想将 id45 作为变量传递给 one.php 我必须在 htaccess 中添加哪一行?
【问题讨论】:
-
您的问题不清楚。
one.php and two.php是在根目录中还是在en/、de/文件夹中? -
文件在根目录中...我不想在物理上拥有 en+de 文件夹我只需要它们在语言变量的 URL 中
-
@anubhava:希望这能让它更清楚。
-
请在您的问题中发布格式正确的代码示例,而不是在它们非常不可读的 cmets 中。
-
@TomSenner 你应该发布你的更新作为答案,因为它就是答案。
标签: .htaccess url-rewriting seo