漂亮 URL 更改变量分隔符
Pretty URL change variable seporator
我正在尝试通过漂亮的 url 传递变量,我可以使用以下方法实现:
domain.com/exercises/lunge+with+dumbells
这在我的 .htaccess
文件中:
RewriteEngine On
RewriteRule ^([a-zA-Z0-9+]+)$ index.php?exercise=
RewriteRule ^([a-zA-Z0-9+]+)/$ index.php?exercise=
在 php 中使用以下方式访问:
$urlVars = $_GET["exercise"];
但是,我需要我的 URLs 像这样阅读:
domain.com/exercises/lunge-with-dumbells
我可以使用
让它工作
exercises/?exercise=lunge-with-dumbells
和这个 PHP 函数:
$urlVars = $_GET["exercise"];
$newString = str_replace("-", " ", $urlVars);
但是,我想要一个漂亮的 URL,变量字符串由 -
分隔,而不是 +
非常感谢。
要让您的 .htaccess 匹配使用“-
”分隔符而不是“+
”分隔符美化的 url,您只需更改管理将规则重写到您的 php 文件:
更改规则自:
RewriteEngine On
RewriteRule ^([a-zA-Z0-9+]+)$ index.php?exercise=
RewriteRule ^([a-zA-Z0-9+]+)/$ index.php?exercise=
至:
RewriteEngine On
RewriteRule ^([a-zA-Z0-9-]+)$ index.php?exercise=
RewriteRule ^([a-zA-Z0-9-]+)/$ index.php?exercise=
为了将正则表达式拆分为最简单的部分,我们将创建一个表示
^ // match the beginning of a strings that start with
(
[ // a pattern consisting of
a-z //a lowercase alphabet letter
A-Z //a uppercase alphabet letter
0-9 //a digit
- //and the minus sign (here we changed from the + sign to the new value)
]
+ //one or more occurence of the combination described above
)
关于正则表达式和.htaccess的更多细节请参考:https://httpd.apache.org/docs/current/rewrite/intro.html
我正在尝试通过漂亮的 url 传递变量,我可以使用以下方法实现:
domain.com/exercises/lunge+with+dumbells
这在我的 .htaccess
文件中:
RewriteEngine On
RewriteRule ^([a-zA-Z0-9+]+)$ index.php?exercise=
RewriteRule ^([a-zA-Z0-9+]+)/$ index.php?exercise=
在 php 中使用以下方式访问:
$urlVars = $_GET["exercise"];
但是,我需要我的 URLs 像这样阅读:
domain.com/exercises/lunge-with-dumbells
我可以使用
让它工作exercises/?exercise=lunge-with-dumbells
和这个 PHP 函数:
$urlVars = $_GET["exercise"];
$newString = str_replace("-", " ", $urlVars);
但是,我想要一个漂亮的 URL,变量字符串由 -
分隔,而不是 +
非常感谢。
要让您的 .htaccess 匹配使用“-
”分隔符而不是“+
”分隔符美化的 url,您只需更改管理将规则重写到您的 php 文件:
更改规则自:
RewriteEngine On
RewriteRule ^([a-zA-Z0-9+]+)$ index.php?exercise=
RewriteRule ^([a-zA-Z0-9+]+)/$ index.php?exercise=
至:
RewriteEngine On
RewriteRule ^([a-zA-Z0-9-]+)$ index.php?exercise=
RewriteRule ^([a-zA-Z0-9-]+)/$ index.php?exercise=
为了将正则表达式拆分为最简单的部分,我们将创建一个表示
^ // match the beginning of a strings that start with
(
[ // a pattern consisting of
a-z //a lowercase alphabet letter
A-Z //a uppercase alphabet letter
0-9 //a digit
- //and the minus sign (here we changed from the + sign to the new value)
]
+ //one or more occurence of the combination described above
)
关于正则表达式和.htaccess的更多细节请参考:https://httpd.apache.org/docs/current/rewrite/intro.html