无论网址级别如何,都使用一个GET变量创建mod_rewrite规则

时间:2018-09-21 15:27:21

标签: .htaccess mod-rewrite getparameter

我正在尝试使这种情况起作用:

URL:www.domain.com/sub/level/details/123/ 应处理为:www.domain.com/sub/level/?product=123

“子”和“级别”可以有所不同。它也可能是/ foo / doo / details / 1 /或什至具有更多子级别:/ foo / bar / foo / bar / foo / details / 123 /

只有部分:“ / details /”后跟整数/ id不变。

我尝试从较旧的TYPO3安装中修改了.htaccess文件:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteRule ^de/(.*)$  http://test.domain.com/$1 [R=301,L]

RewriteRule ^typo3$ - [L]
RewriteRule ^typo3/.*$ - [L]
RewriteRule ^uploads/.*$ - [L]
RewriteRule ^fileadmin/.*$ - [L]
RewriteRule ^typo3conf/.*$ - [L]
RewriteRule ^./details/([0-9]+)/$ ?product=$1

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule .* /index.php

非常感谢您的支持!

谢谢

1 个答案:

答案 0 :(得分:0)

您的正则表达式不正确,因为您在/detail/之前的开头匹配了一个字符。

替换此规则:

RewriteRule ^./details/([0-9]+)/$ ?product=$1

与此:

RewriteRule ^(.+)/details/(\d+)/?$ $1?product=$2 [L,NC,QSA]