在Localhost上重写URL? Apache PHP

时间:2010-08-17 11:20:53

标签: apache .htaccess mod-rewrite

我在本地计算机上使用Xampp上的Apache mod_rewrite,但代码似乎无法正常工作。

请查看下面的代码并帮助我。我是初学者。

RewriteEngine on
RewriteBase /
RewriteCond     %{REQUEST_FILENAME}     !-f
RewriteCond     %{REQUEST_FILENAME}     !-d
RewriteRule     ^m3/([a-zA-Z0-9-]+)$/?profile=com_frontpage&url=$1 [L,QSA] 

我想要的是以下网址:

http://localhost/m3/?profile=com_frontpage&url=nero

被重写为

http://localhost/m3/nero

请帮助我实现这一目标。

感谢名单

感谢您的快速回复

我已经实施了修改后的代码,但是一旦我尝试输入新的网址,我就会收到404错误。

我在Windows操作系统上使用Xampp,因此将文件重命名为.htaccess被拒绝,我不确定使用'htaccess.txt'是否有效。

可能是什么问题?

感谢名单

3 个答案:

答案 0 :(得分:1)

更改您的RewriteBase

RewriteEngine on
RewriteBase /m3/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9-]+)$ index.php?profile=com_frontpage&url=$1 [L,QSA]

编辑:修正语法。

答案 1 :(得分:1)

确保在Apache的httpd.conf文件中的文档根目录中设置了此选项:

AllowOverride All

答案 2 :(得分:0)

如果您的.htaccess文件位于网站根目录(位于htdocs文件夹中),您希望这样:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^m3/([a-zA-Z0-9-]+)$ m3/index.php?profile=com_frontpage&url=$1 [L,QSA]

此外,您需要将文件另存为.htaccess。只需从您使用的任何编辑器中“另存为...”,并将文件另存为.htaccess。唯一不能这样做的地方是在Windows资源管理器中,但那只是资源管理器是愚蠢的;你绝对可以用程序(甚至记事本)中的正确名称保存文件。

或者,如果您愿意,可以从命令行执行此操作:

cd C:\path\to\xampp\htdocs\
rename htaccess.txt .htaccess