.htaccess rewriterule帮助,

时间:2014-02-04 03:57:16

标签: regex apache .htaccess mod-rewrite

我似乎无法弄清楚如何通过我的.htaccess

来解决这些问题
http://example.com/index.php?page=about
to
http://example.com/about

并且同时

http://example.com/index.php?process=login
to
http://example.com/p/login

我自己试图这样做,但我无法弄清楚如何同时做两件事。

使用Apache

2 个答案:

答案 0 :(得分:2)

最简单的案例

最简单的URL重写案例是重命名单个静态网页,这比上面的B& Q示例容易得多。要使用Apache的URL重写功能,您需要在网站的文档根目录中创建或编辑.htaccess文件(或者,不太常见,在子目录中)。

RewriteEngine On  
RewriteRule   about   index.php?page=about
RewriteRule   login   index.php?process=login

使用常规表达

在URL重写中,您只需匹配URL的路径,不包括域名或第一个斜杠

RewriteEngine On  
RewriteRule   ^about/?$   index.php?page=about  [NC]
RewriteRule   ^login/?$   index.php?process=login  [NC]

你也可以这样做

  

example.com/index.php?page=about
  到
  example.com/about.html      example.com/about

使用此规则

RewriteEngine On 
RewriteRule ^([^/]*)\.html$ /index.php?page=$1 [L]

 RewriteEngine On RewriteRule ^([^/]*)$ /index.php?page=$1 [L] 

以下是一些有用的链接

干杯!

Mudassar Ali

答案 1 :(得分:-1)

将此代码放入DOCUMENT_ROOT/.htaccess文件中:

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

RewriteRule ^p/([^/]+)/?$ /index.php?process=$1 [L,QSA]

RewriteRule ^([^/]+)/?$ /index.php?page=$1 [L,QSA]