【问题标题】:htaccess rewrite rule: abc.com/sub/random.php to abc.com/randomhtaccess 重写规则: abc.com/sub/random.php 到 abc.com/random
【发布时间】:2013-01-07 03:49:54
【问题描述】:

我正在尝试将http://abc.com/sub/random.php 重写为http://abc.com/random。 我试过了

RewriteRule ^random$ sub/random.php [QSA,L]

但由于某种原因它不起作用。

【问题讨论】:

    标签: apache .htaccess rewrite


    【解决方案1】:

    在浏览器的地址栏中显示带有资源的“丑陋”URL:http://abc.com/sub/random.php,而隐藏“漂亮”URL http://abc.com/random 并没有多大意义。所以,我假设你想要的与你所要求的相反。

    如果正确,你可以试试这个:

    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} .*/([^/]+)/?$    [NC]
    RewriteRule .* sub/%1.php  [L,QSA]
    

    它会默默映射:

    http://abc.com/random

    到这里:

    http://abc.com/sub/random.php

    其中random 不是固定字符串,而是作为脚本名称传递的变量。

    【讨论】:

    • 非常感谢!真的很感激
    【解决方案2】:

    这应该适合你。

    RewriteCond %{HTTP_HOST} ^abc\.com$ [OR]
    RewriteCond %{HTTP_HOST} ^www\.abc\.com$
    RewriteRule ^sub\/random\.php$ "http\:\/\/abc\.com\/random" [R=301,L]
    

    【讨论】:

    • 感谢您的回复。但不幸的是,由于某种原因它不起作用。
    猜你喜欢
    • 2016-09-19
    • 1970-01-01
    • 2011-10-18
    • 2020-01-10
    • 2014-10-30
    • 1970-01-01
    • 1970-01-01
    • 2017-08-21
    相关资源
    最近更新 更多