Mod 重写 URL 中可选语言的规则
Mod rewrite rule for optional language in URL
我有一家这样的店铺URL
我正在尝试在 .htaccess 中将其重写为 https://domain.eu/lp/index.php?id=&lang=
我非常接近
RewriteRule ^/?(hr|sk|pl|cz|ro|it)/lp/(\d+)?$ /lp/index.php?id=&lang=
工作正常,但我似乎无法找到一种方法来处理 URL 中没有 lang 的情况。
所以这也是有效的:https://domain.eu/lp/9200 但在那种情况下我希望 $1 只是空的(或者当它不存在时有一个默认值)
我知道“?”表示“一次或零”次,这就是我尝试的原因
RewriteRule ^/?[(hr|sk|pl|cz|ro|it)?]/lp/(\d+)?$ /lp/index.php?id=&lang=
但它没有按预期工作。任何正确方向的观点都将不胜感激。
用你展示的样品,尝试;请按以下方式获取您的 htaccess 规则文件。确保在测试您的 URL 之前清除您的浏览器缓存。
RewriteEngine ON
##Rewrite rule for uris which have only 1 parameter.
RewriteRule ^lp/(\d+)/?$ /lp/index.php?id= [NC,L]
##Rewrite rule for uris which 2 parameters.
RewriteRule ^(hr|sk|pl|cz|ro|it)/lp/(\d+)/?$ /lp/index.php?id=&lang= [NC,L]
或 使用以下解决方案,以防您尝试访问的 uris 不存在。确保一次只使用第一个解决方案或这个解决方案。
RewriteEngine ON
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^lp/(\d+)/?$ /lp/index.php?id= [NC,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(hr|sk|pl|cz|ro|it)/lp/(\d+)/?$ /lp/index.php?id=&lang= [NC,L]
我有一家这样的店铺URL
我正在尝试在 .htaccess 中将其重写为 https://domain.eu/lp/index.php?id=&lang=
我非常接近
RewriteRule ^/?(hr|sk|pl|cz|ro|it)/lp/(\d+)?$ /lp/index.php?id=&lang=
工作正常,但我似乎无法找到一种方法来处理 URL 中没有 lang 的情况。
所以这也是有效的:https://domain.eu/lp/9200 但在那种情况下我希望 $1 只是空的(或者当它不存在时有一个默认值)
我知道“?”表示“一次或零”次,这就是我尝试的原因
RewriteRule ^/?[(hr|sk|pl|cz|ro|it)?]/lp/(\d+)?$ /lp/index.php?id=&lang=
但它没有按预期工作。任何正确方向的观点都将不胜感激。
用你展示的样品,尝试;请按以下方式获取您的 htaccess 规则文件。确保在测试您的 URL 之前清除您的浏览器缓存。
RewriteEngine ON
##Rewrite rule for uris which have only 1 parameter.
RewriteRule ^lp/(\d+)/?$ /lp/index.php?id= [NC,L]
##Rewrite rule for uris which 2 parameters.
RewriteRule ^(hr|sk|pl|cz|ro|it)/lp/(\d+)/?$ /lp/index.php?id=&lang= [NC,L]
或 使用以下解决方案,以防您尝试访问的 uris 不存在。确保一次只使用第一个解决方案或这个解决方案。
RewriteEngine ON
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^lp/(\d+)/?$ /lp/index.php?id= [NC,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(hr|sk|pl|cz|ro|it)/lp/(\d+)/?$ /lp/index.php?id=&lang= [NC,L]