道歉,如果对此的答案已经存在,我看了但却找不到有同样问题的人。 mod_rewrite在我的localhost上启用,但我刚刚做的重写规则似乎不起作用。
Options -indexes
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /Website
# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite index.php
RewriteRule ^Website([^/]*)/$ /Website/?action=$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
ErrorDocument 404 index.php
</IfModule>
我甚至使用了这个mod rewrite generator,但生成的规则也不起作用。我在WordPress本地安装的东西设法可以很好地重写URL,所以我写的代码肯定有问题
我对这个.htaccess的东西不太了解,所以我非常感谢我能得到的任何答案。
感谢。
答案 0 :(得分:1)
设置RewriteBase
后,您无需在RewriteRule
你的规则应该是......
RewriteRule ^([^/]*)/$ /Website/?action=$1 [L]
那就行了! (这是考虑到你的正则表达式也很好:p)
编辑:(解释)
一旦你设置了RewriteBase
mod_rewrite只会查看基础之后的所有内容,那么RewriteRule绝对需要的是/Website/Website([^/]*)/
。
答案 1 :(得分:0)
试试这段代码:
Options -indexes
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /Website
# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite index.php
RewriteRule ^([^/]+)/?$ ?action=$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
ErrorDocument 404 index.php
</IfModule>
RewriteEngine On
RewriteBase /Website/
RewriteRule ^([^/.]+)/?$ ?action=$1 [L,QSA]