繁体   English   中英

.htaccess RewriteRule不执行任何操作

[英].htaccess RewriteRule doesn't do anything

抱歉,如果已经存在答案,我已经找到了,但是找不到任何遇到相同问题的人。 我的本地主机上启用了mod_rewrite,但是我刚刚制定的重写规则似乎不起作用。

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重写生成器,但是生成的规则也不起作用。 我在本地安装的东西(如Wordpress)可以很好地重写URL,所以我编写的代码肯定有问题

我对.htaccess的东西不了解,所以我非常感谢我能得到的任何答案。

谢谢。

设置RewriteBase ,无需在RewriteRule重新声明它

您的规则应为...

RewriteRule ^([^/]*)/$ /Website/?action=$1 [L]

会做到的! (这是考虑到您的正则表达式也可以:p)

编辑:(解释)

设置RewriteBase mod_rewrite后,仅会查看该库之后的所有内容,因此RewriteRule绝对需要的是/Website/Website([^/]*)/

试试这个代码:

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]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM