【问题标题】:htaccess: php language variable on index pagehtaccess:索引页面上的 php 语言变量
【发布时间】:2015-06-29 15:48:56
【问题描述】:

我正在尝试从扩展和 php 中清理 url 获取语言变量:

test.com/en/ => test.com/?lang=en

test.com/ro/page/ => test.com/page.php?lang=ro

这是我的 .htaccess:

AddDefaultCharset utf-8

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} -f  [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .* - [L]
RewriteRule ^([^/]+)/([^.]+)\.php  /$2.php?lang=$1 [L,NC,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/$ $1.php
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]

虽然它转换 test.com/ro/page => test.com/page.php?lang=ro 还有 test.com/ro/index => test.com/index.php?lang=ro

我无法让它转换索引页面 test.com/en/ => test.com/?lang=en

你们能帮我实现这个吗?

【问题讨论】:

  • 将所有内容路由到index.php 并从那里包含正确的文件不是更容易吗?
  • 在这个阶段,当网站完成并且结构已经建立时,修复htaccess文件可能是最简单的选择。
  • 只是一个建议:-)

标签: php .htaccess clean-urls lang trailing-slash


【解决方案1】:

就在这条规则之下:

RewriteRule ^([^/]+)/([^.]+)\.php  /$2.php?lang=$1 [L,NC,QSA]

尝试添加此规则:

RewriteRule ^([^/]{2})/?$ /?lang=$1 [L,NC,QSA]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-27
    • 1970-01-01
    • 1970-01-01
    • 2015-03-10
    • 1970-01-01
    • 2017-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多