1

我最终要做的是做 /about 而不是 /main.php?p=about。我看过一些帖子(像这样!)但似乎没有一个对我有用。

首先,我将 ReWrite 规则放在 httpd.conf 中。这是正确的吗?很多地方都提到了 .htaccess,但我在任何看起来很重要的目录中都没有该文件(唯一的参考在 phpMyAdmin 中)。我将文件从 phpMyAdmin 复制到 htdocs,然后用一个简单的规则替换文本:

RewriteEngine on
RewriteRule home main.php [L]

但是 localhost/home 报告了一个错误的请求。

所以首先我应该使用哪个文件&如果.htaccess我应该把文件放在哪里&我必须在任何其他文件中引用它吗?其次,以下是否可能适用于我想要的方法?

RewriteEngine on
RewriteRule ^([^/]+)/?  main.php?p=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

感谢您的澄清和帮助。麦克风

4

1 回答 1

0

你实际上有条件 ( RewriteCond) 之后RewriteRule。应该反过来。

启用mod_rewrite.htaccess通过httpd.conf然后将此代码放入您的DOCUMENT_ROOT/.htaccess文件中:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ /main.php?p=$1 [L,QSA]

RewriteRule ^home/?$ main.php [L,NC]

推荐阅读:Apache mod_rewrite 简介

于 2013-10-20T09:25:25.493 回答