gpt4 book ai didi

.htaccess - 使用 htaccess URLrewrite 设置语言

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:27:29 25 4
gpt4 key购买 nike

例如,我的根目录中有两个文件:one.phptwo.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 中添加哪一行?

最佳答案

你可以试试这个规则:

DirectoryIndex index.php index.html
DirectorySlash On

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$2.php -f
RewriteRule ^(en|de|fr)/([^/]+)(?:/(.*)|)$ $2.php?lang=$1&var=$3 [L,QSA,NC]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z]{2})/?$ index.php?lang=$1 [L,QSA,NC]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ $1?lang=en [L,QSA]

关于.htaccess - 使用 htaccess URLrewrite 设置语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18960882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com