基本的htaccess代码不起作用

tec*_*rld 6 .htaccess

这对我来说真的很令人沮丧,因为我一直试图让这个非常基本的htaccess重写工作数小时但却做不到.

我试过以下.

Options +FollowSymlinks
RewriteEngine On
RewriteBase /funshoppie/

############ Details page ################
RewriteCond %{THE_REQUEST} Deal\-details\.php\?title\=([A-Za-z0-9-]+)&id=(\d+) [NC]
RewriteRule ^%1%2? [R=301,L,NE]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^Deals/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ Deal-details.php?title=$1&id=$2 [NC,QSA,L]
Run Code Online (Sandbox Code Playgroud)

谁能告诉我我在做什么错?

我试图重写的网址

http://localhost/funshoppie/Deal-details.php?title=Styling%20Tools%20-%2020%%20off&id=7
Run Code Online (Sandbox Code Playgroud)

我成功后的愿望

http://localhost/funshoppie/Deals/Styling-Tools-20%-off/7
Run Code Online (Sandbox Code Playgroud)

我检查了错误日志,httpconf并确保取消注释rewrite_module.不知道什么导致了这个错误.

Has*_*ash 5

我现在不能尝试这个,但是,你的正则表达式不符合URL:

新政-details.php?标题=造型%20Tools%20-%2020 %% 20off&ID = 7

基于en和解码,这可能是以下两个字符串:

  • 新政-details.php?标题=造型%20Tools%20-%2020 %% 20off&ID = 7
  • Deal-details.php?title =造型工具 - 20%off&id = 7

在任何情况下都不匹配您的表达式:

[..] Deal-details.php \?title\=([A-Za-z0-9 - ] +)&id =(\ d +) [..]

您缺少表达式中代表的字符,例如:

  • "%"
  • " " (空间)

请尝试以下表达式:

Deal\-details\.php\?title\=(.+)&id=(\d+)
Run Code Online (Sandbox Code Playgroud)

这将匹配任何characterafter标题.否则我认为没问题.