我正在尝试创建一个动态页面,其内容由传递给它的变量确定,但我希望网址很好。基本上我想在目录/ foo中有一个索引文件来处理任何条形码。 example.com/foo/bar到example.com/foo?id=bar
我已经在httpd.conf文件中尝试了所有我能想到的东西。我最近的尝试是:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/foo/([a-z-]*) /foo/index.php?id=$1 [QSA,L]
但是当我尝试加载example.com/foo/bar时,加载的页面是example.com
非常感谢任何帮助!
编辑:我访问example.com/foo/bar时仍在加载example.com/index.php也许我的其他规则之一是干扰?
AllowOverride none
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)\.html$ http://www.example.com/$1.php [R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/foo/([a-z-]*)(\/?)$ /foo/index.php?id=$1 [NC,QSA,L]
RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteRule ^/?(.*) http://www.example.com/$1 [L,R,NE]
.html到.php,我想要实现的目标,以及example.com到www.example.com。
答案 0 :(得分:5)
我在httpd.conf中使用它
<VirtualHost *:80>
DocumentRoot "/var/www/"
ServerName www.domain.com
ServerAlias www.domain.com
<Directory /var/www/>
#other directives
</Directory>
<Directory /var/www/foo/>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z]+)(\/?)$ index.php?id=$1 [NC,QSA,L]
</Directory>
</VirtualHost>