我正在使用apache2和最新的php。我想做的是在我的域上加载一个随机的URL php文件。
示例:example.com/randfilename.php?var1=1&var2=2&var3=3
然后randomfilename.php将加载带有vars的file.php。请记住,randomfilename.php不会是这样的名称。它将是随机的,末尾有.php。
我尝试过使用RewriteEngine
,它只适用于example.com/randfilename
,但一旦我添加了.php,它就不起作用了。
我试过的是
RewriteEngine On
RewriteRule ^([a-zA-Z'-]+)$ file.php?key=$1 [L]
还有其他方法可以实现我想要做的事情吗?
.php
扩展名中有一个.
,您的模式是^([a-zA-Z'-]+)$
,它只匹配字母和破折号,不匹配句点。您可以显式地将.php
扩展添加到模式中,并排除file.php
:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/file'.php$
RewriteRule ^([a-zA-Z'-]+)'.php$ file.php?key=$1 [L]
^([a-zA-Z'-]+)$
的实际含义是"从开始到结束匹配a-zA-Z"。由于".php"有一个点,所以它不会匹配。
这样就可以了。
RewriteRule ^([a-zA-Z'-]+)'.php$ file.php?key=$1 [L]