htaccess url用搜索重写

时间:2012-06-09 10:40:35

标签: .htaccess url rewrite

我正在尝试创建一个将实现以下内容的.htaccess文件

  1. 使用page page.php创建一个像www.mydomain.com/About-Us这样的干净网址?title =关于我们
  2. 使用url上传递的参数查询数据库,如www.mydomain.com/?search=abc,它会拉到页面index.php?search = abc
  3. 到目前为止这是我的代码

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    
    RewriteRule ^?search=([0-9]*)$ index.php?id=$1 ## e.g www.mydomain.com/?search=try
    RewriteRule ^([A-Z]*)$ page.php?name=$1 
    ## www.mydomain.com/About-Us
    
    ##ErrorDocument 404 PageNotavailabale
    
    
    ####Protect the system from machines with worms
    RewriteRule (cmd|root)\.exe - [F,E=dontlog:1]
    
    #### To hold and redirect css/images/js files
    RewriteRule images/(.+)?$ images/$1 [NC,L]
    RewriteRule css/(.+)?$ css/$1 [NC,L]
    RewriteRule js/(.+)?$ js/$1 [NC,L]
    

1 个答案:

答案 0 :(得分:3)

为什么不在搜索引擎中使用这种网址:www.domain.com/search/abc

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^search/([a-zA-Z0-9]+)$   index.php?search=$1
RewriteRule ^([a-zA-Z0-9]+)$          index.php?page=$1 

然后,您使用www.domain.com/<myPage>访问您的网页。

您的搜索引擎www.domain.com/search/<mySearch>

编辑:

请注意你的规则不允许很多参数:

  • ^?search=([0-9]*)$仅允许数字(甚至是空参数)
  • ^([A-Z]*)$仅允许使用大写字母(以及空参数)