在本地主机上重写URL?ApachePHP

在本地主机上重写URL?ApachePHP,apache,.htaccess,mod-rewrite,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&

我在本地机器上的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] 
我想要的是下面的URL:

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

http://localhost/m3/nero http://localhost/m3/nero 请帮我做到这一点

塔克斯

谢谢你的快速回复

我已经实现了修改后的代码,但一旦我尝试输入新的URL,我就会收到404错误

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

可能是什么问题


Thanx

更改您的
重写库

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]

编辑:固定语法。

如果您的
.htaccess
文件位于站点根目录中(在
htdocs
文件夹中),则需要此选项:

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

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

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

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

AllowOverride All

我已经更改了我的代码,但仍然收到404错误,这可能是问题所在。我编辑了上面的示例,因为我意识到您的
重写规则中没有空格,这意味着模式不匹配。现在试试上面的。Thanx因为我不知道间距问题你在哪里使用这个规则?顺便说一下,
RewriteRule
指令的模式和替换必须至少用一个空格或制表符隔开。
AllowOverride All