1

是否可以制定一个简短的 URL 规则,以便http://mydomain.com/之后的每个单词(根文件夹除外)都将被重定向到 /index.php?permalink=$1 ?

例子:

http://mydomain.com/ - 转到 index.php(标准)。 http://mydomain.com/word - 转到 index.php?permalink=word

我的 .htaccess 现在看起来像这样:

Options +FollowSymLinks

RewriteEngine On
RewriteBase /

RewriteRule /page/([0-9]+) /?page=$1
4

1 回答 1

2

尝试这个:

  RewriteRule ^.*/(\w+)\b$ /index.php?permalink=$1

^在行首断言位置。
.*/匹配任何单个字符或不匹配任何字符,直到最后一个/.
(\w+)匹配字母、数字、下划线、至少一个字符,并将其捕获为组号 1.
\b在单词边界处断言位置。
$在行尾断言位置。

因此:

http://mydomain.com/word1 变成 /index.php?permalink=word1
http://mydomain.com/publish_files/word2 变成 /index.php?permalink=word2

对于您对评论的要求,试试这个,但我还没有测试过:

  RewriteCond %{HTTP_REFERER} !^(http://)?{HTTP_HOST}/[^/]+/.*$ [NC]
  RewriteRule ^.*$ /index.php
  RewriteCond %{HTTP_REFERER} !^(http://)?{HTTP_HOST}/\w+$ [NC]
  RewriteRule ^.*/(\w+)$ /index.php?permalink=$1
于 2010-10-15T12:10:57.497 回答