我有这样的网址 - www.example.com/blog.php/username,它会将您带到用户名的博客页面,但我想使用这样的网址 - www.example.com/blog / username来到同一个文件(blog.php)。请为实现这一目标需要采取哪些步骤?谢谢你的帮助。
答案 0 :(得分:4)
在名为.htaccess的根目录中创建一个文件,然后在以下文件中输入:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^blog/(.*)$ yourpage.php?username=$1 [L]
</IfModule>
(。*)将采用任何字符
如果您只想使用字母和数字,请(.*)
([A-Za-z0-9])
答案 1 :(得分:3)
启用mod_rewrite和.htacess。然后在DOCUMENT_ROOT:
下的.htaccess中添加此代码Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
# If the request is not for a valid directory
RewriteCond %{REQUEST_FILENAME} !-d
# If the request is not for a valid file
RewriteCond %{REQUEST_FILENAME} !-f
# If the request is not for a valid link
RewriteCond %{REQUEST_FILENAME} !-l
# finally this is your rewrite rule
RewriteRule ^blog/(.+)$ blog.php/$1 [L,NC]
答案 2 :(得分:1)
删除文件扩展名:
有两种方法可以做到这一点。简单的方法只是看一个 请求,如果请求的文件名不存在,则查找 带有.php(或.asp或其他)扩展名的文件名。在一个 .htaccess文件:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php [L,QSA]
现在,如果您转到:http://domain/about,服务器会将其解释为 如果你去了http://domain/about.php。
有道理,但如果我们已经打破了URL之间的关系 和文件名,我们也可以聪明地打破它。改变这一点 .htaccess文件:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
来源:Dave Dash - &gt; http://davedash.com/2006/07/26/how-to-remove-file-extensions-from-urls/
答案 3 :(得分:1)
1你应该安装mod-rewrite
2您应该确保您的doc根目录是“AllowOverride All”。普通的虚拟主机配置之后你应该找到类似的东西:
<Directory "/your/doc/root/path/">
AllowOverride All
</Directory>
3之后,您应该开始重写引擎并在.htaccess中创建重写规则,正如DavidBélanger所建议的那样:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^blog/(.*)$ blog.php/$1 [L]
</IfModule>