【问题标题】:htaccess Redirect directory name to parameterhtaccess 将目录名重定向到参数
【发布时间】:2014-03-06 22:38:09
【问题描述】:

我想像这样重定向所有路径:

myurl.com/worldwide/en
myurl.com/worldwide/pt
myurl.com/worldwide/de

到:

myurl.com/worldwide/index.php?lang=en
myurl.com/worldwide/index.php?lang=pt
myurl.com/worldwide/index.php?lang=de

只是为了清楚/worldwide之后路径名的动态重定向

实际上,理想情况下,我想保留原始网址(例如myurl.com/worldwide/de),但以语言目录作为参数加载相同的 php 文件,但不确定这是否可行?

谢谢

【问题讨论】:

    标签: .htaccess redirect directory param


    【解决方案1】:

    使用此代码

    RewriteEngine On
    RewriteBase /worldwide/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?lang=$1 [L,QSA]
    

    如果这对你有帮助,请告诉我

    【讨论】:

    • 几乎完美非常感谢!只需从^(.*)$ index.php?/lang=$1 [L,QSA] 中删除/$1 解析为例如worldwide/en 而不是 en 但不是问题,我可以在 php 中将其删除。很高兴它也不会更改网址,谢谢
    • 谢谢...请接受它作为答案来感谢您
    • 我会(必须等待最少几分钟)
    • 为什么我把/放在最后,它没有加载任何外部资源(css、图片)?
    • @Dan the Man:对不起,我无法理解你。你能分享一下你想使用的代码吗
    【解决方案2】:
    RewriteEngine on
    RewriteBase /
    
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}.php -f
    RewriteRule ^ %{REQUEST_URI}.php [L,NC]
    
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME}.php !-f
    RewriteRule ^(.+)$ /index.php?page=$1 [L,QSA]
    

    【讨论】:

    • 这行得通。如果你添加一些解释为什么,你有我的投票。
    猜你喜欢
    • 1970-01-01
    • 2013-09-11
    • 1970-01-01
    • 2015-10-08
    • 2015-06-06
    • 2014-09-04
    • 1970-01-01
    • 1970-01-01
    • 2014-08-28
    相关资源
    最近更新 更多