我正在尝试将带有参数的丑陋网址变成一个不错的网址。目前我有:
我希望如此:
我尝试过使用此.htaccess:
RewriteEngine On
RewriteRule ^/?$/?$ index.php?reg=$1&area=london&id=$2 [L,QSA]
我是从一台在线生成器获得的,但是当我在网址中运行带有/ uk / 16的页面时,它只是崩溃了。
我做错了什么?
回复克里斯在下面的回复。所有这些都是可选的。
网址结构如下:
myasite.com
myasite.com/uk (if set, This will always be text and always 2 chars long)
myasite.com/uk/london (if set, This will always be text, this will be any char length )
myasite.com/uk/london/16 (if set, This will always be integer and any char length)
答案 0 :(得分:0)
您的正则表达式不正确。您的^/?$/?$
表示请求只能有2 /
个,每个都是可选的。您也没有使用任何捕获组,因此$1
和$2
没有上下文。这是一个适用于您提供的示例的正则表达式:
^/(uk)/(\d+)$
如果uk
可以使用任何2个小写字母:
^/([a-z]{2})/(\d+)$
您可以使用regex101查看正则表达式的运作方式。
https://regex101.com/r/VyJE9d/1(你的规则)
https://regex101.com/r/VyJE9d/2
页面右侧给出了解释。
作为重写规则:
RewriteEngine On
RewriteRule ^/([a-z]{2})/(\d+)$ index.php?reg=$1&id=$2 [L,QSA]
答案 1 :(得分:0)
您需要使用的是RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ /index.php?reg=$1&area=$2&id=$3 [L]
文件中的所有内容:
http://myasite.com/uk/london/16
这将为您留下所需的网址: {{#each containersToCreateChart}}
some html that I need to do for each one
then wait X milliseconds
and do the next iteration
{{/each}}
。在测试之前,请确保清除缓存。
答案 2 :(得分:-1)
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)/([0-9]+)/?$ index.php?reg=$1&id=$2 [L,QSA]
我们正在重写$1/$2/
和$1/$2
至index.php?reg=$1&id=$2