mod_rewrite不能与我的网址一起使用

时间:2013-11-23 05:51:11

标签: php apache .htaccess mod-rewrite friendly-url

我正在尝试使用apache mod_rewrite制作SEO友好的URL。

我的普通网址是这样的 -

index.php?p=about
index.php?p=contact
index.php?p=this

我期待SEO友好的URL应该与此类似 -

localhost/php_advance/ch02/about
localhost/php_advance/ch02/contact
localhost/php_advance/ch02/this

我尝试创建.htaccess文件并对我的apache httpd.conf文件进行一些更改。

这是我的.htaccess文件

<ifModule mod_rewrite.c>

# Turn on the engine:
RewriteEngine on

# Set the base to this directory:
RewriteBase /php_advance/ch02/

# Redirect certain paths to index.php:
RewriteRule ^(about|contact|this|that|search)/?$ index.php?p=$1

</ifModule>

而且,在httpd.conf文件的末尾,我添加了一些像这样的代码 -

<Directory "C:/wamp/www/php_advance/ch02">
 AllowOverride All
</Directory>

NOTE:我正在使用WAMP服务器和Windows 07

但这种编码对我不起作用。希望有人能帮助我。 谢谢。

2 个答案:

答案 0 :(得分:2)

确保打开mod_rewrite。在httpd.conf文件中,您应该有类似的内容:

LoadModule rewrite_module modules/mod_rewrite.so

然后确保您的htaccess文件位于/ch02/目录中。

答案 1 :(得分:0)

试试这个:

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteBase /php_advance/ch02/
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /php_advance/ch02/index.php [L]
</IfModule>