【问题标题】:htaccess url rewrite with searchhtaccess url 用搜索重写
【发布时间】:2012-06-09 10:40:34
【问题描述】:

我正在尝试创建一个 .htaccess 文件来实现以下目标

  1. 使用页面 page.php?title=About Us 创建一个像 www.mydomain.com/About-Us 这样的干净网址
  2. 使用 URL 上传递的参数查询数据库,例如 www.mydomain.com/?search=abc 并拉到 index.php?search=abc 页面

这是我目前的代码

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]

【问题讨论】:

    标签: .htaccess url rewrite


    【解决方案1】:

    为什么不为您的搜索引擎使用这种网址: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]*)$ 只允许大写字母(以及空参数)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-01
      • 1970-01-01
      • 2013-11-06
      • 1970-01-01
      相关资源
      最近更新 更多