我在本地计算机上使用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'是否有效。
可能是什么问题?
感谢名单
答案 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