开发者

How to use .htaccess to make a URL like http://domain.com/query

I want to make

http://开发者_开发百科domain.com/index.php?query=query

look like

http://domain.com/query

I know I need to use .htaccess, but I have no idea how to approach this.


Something like:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !index.php
RewriteBase /

RewriteRule ^(.+) /index.php?query=$1

Edited:

If you really want your URLs to look like you asked, you should host all your media files (CSS, JS and images) in another virtual host, lets say, http://media.domain.com - because can't tell the difference if "query" matches the name of an existing file on domain.com.


The keyword to search for is RewriteRule.

The Drupal .htaccess file is a good example of mapping /?q=query to /query, but not redirecting things which provide an explicit match - so /files/something.css which is a real file will not be redirected. Here's the relevant snippet from Drupal's .htaccess with ?q= changed to ?query=.

RewriteEngine On
RewriteBase /
# Rewrite URLs of the form 'index.php?query=x'.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?query=$1 [L,QSA]
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜