1
我一直在尝试过去2-3小时才能得到这个工作,但我根本没有足够的正则表达式知识。点字符串到PHP页面和查询
我试图让一个URL缩短,所以我想指出一个url像domain.com/d5Ds93X
喜欢的东西domain.com/view.php?s=d5Ds93X
我已经与我的.htaccess文件瞎搞,现在有这样的:
RewriteEngine on
RewriteBase/
RewriteRule /(.*?)$ /view.php?s=$1 [L]
而这种工作,它指向正确的文件,但字符串(d5Ds93X)不传递。我view.php
文件看起来像这样(用于测试目的):
<?php
if (isset($_GET['s']) && ctype_alnum($_GET['s'])) {
echo $_GET['s'];
}
?>
当访问URL我只是得到一个空白页。但是,如果我在if
规则之前回应任何内容,它会显示,因此该页面可以正常工作。 GET的数据是否被传递?或者我应该添加检测网址中的数据的代码?让规则从的.htaccess以及来自Apache的配置工作
RewriteEngine on
RewriteBase/
# If the request is not for a valid directory
RewriteCond %{REQUEST_FILENAME} !-d
# If the request is not for a valid file
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/?(.+)$ view.php?s=$1 [L,QSA]
制作斜线可选:
完美,谢谢你的加载!完美的作品。你有可能解释'^ /?(。+)$'的每个部分是什么意思?我想我想要/ admin /重定向到一个不同的页面我只是把它的重写规则放在[L]之前,以防止看到其他规则是正确的? – s1h4d0w
'^ /?'make'/'在开始时是可选的。 '。(。+)'匹配任何一个或多个字符,最后'$'用于输入结束。 – anubhava
@ s1h4d0w请如果答案解决您的问题接受它。 –