Url 重写无法在 ubuntu 服务器上运行

Url 重写无法在 ubuntu 服务器上运行

目前我正在与php脚本,但它仍然包含一个不友好的链接(cms.php?Cms=login)。

我想将其变成友好链接

/cms/login

我已.htaccess创建了一个文件

RewriteEngine On
RewriteRule ^cms/([^/]*)$ /cms.php?cms=$1 [L]

但是当我进入该页面时,我看到的是:

在此处输入图片描述

我的/etc/apache2/sites-available/default文件:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www
        <Directory />
                Options FollowSymLinks
                AllowOverride All
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

还做了这个:

sudo a2enmod rewrite

sudo service apache2 reload

rewrite.load文件:

LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

我查看了很多论坛,但找不到它。Ubuntu 服务器运行于开放虚拟网络(Ubuntu 12.10)

问题出在哪里?我应该怎么办?

答案1

尝试这个:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^cms\login$ cms.php?Cms=login [L]
</IfModule>

您应该注意到,您输入的cms.php?Cms=login是大写字母“C”,这与小写字母“c”不同。

相关内容