重写url缩短规则

时间:2014-02-19 13:42:28

标签: .htaccess mod-rewrite

我已在我的域中的子目录下安装了Yourls 该服务在其位置上运作。 工作网址为http://mydomain.com/1/abc,其中1是子目录。

有没有办法让规则能够调用http://mydomain.com/1abc来解析工作网址http://mydomain.com/1/abc

我不太明白将它放在何处以及如何设置规则,因为我没有发送参数。

由于

1 个答案:

答案 0 :(得分:1)

假设子目录总是由数字组成,子目录是物理目录,请在www-root中创建一个文件.htaccess并添加以下内容:

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} ^/([0-9]+)[^/]*$
RewriteCond %{DOCUMENT_ROOT}/%1 -d
RewriteRule ^([0-9]+)([^/]*)$ /$1/$2 [L]

它首先检查url是否与^([0-9]+)([^/]*)$匹配(以1或更多数字开头,之后包含任何非斜杠字符。RewriteCond %{REQUEST_URI} ^/([0-9]+)[^/]*$匹配相同的东西,因为我们需要假设的目录-part在下一个条件中。RewriteCond %{DOCUMENT_ROOT}/%1 -d检查我们认为的数字是否是一个子目录,实际上是一个目录。如果是这种情况,则url将在内部重写为/number/restoftheurl