0

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

  1. 创建一个干净的网址,如 www.mydomain.com/About-Us 页面 page.php?title=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]
4

1 回答 1

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]*)$只允许大写字母(也允许空参数)
于 2012-06-09T11:07:35.713 回答