htaccess重写规则:abc.com/sub/random.php到abc.com/random

时间:2013-01-07 03:49:54

标签: apache .htaccess rewrite

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

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

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

2 个答案:

答案 0 :(得分:1)

使用浏览器地址栏中的资源显示“丑陋”网址没有多大意义:http://abc.com/sub/random.php,同时隐藏“漂亮”网址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不是固定字符串,而是作为脚本名称传递的变量。

答案 1 :(得分:0)

这对你有用。

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