我有一个包含 3 个脚本的站点,即viewgames.php和play.php存在users.php于根目录中。我在同一个(根)目录中也有一个 .htaccess 文件。
我清理 URL 的 .htaccess 代码是:-
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^search/(.*)$ ./viewgames.php?search=$1
RewriteRule ^category/(.*)$ ./viewgames.php?cat=$1
RewriteRule ^users/(.*)$ ./users.php?action=$1
RewriteRule ^play/(.*)$ ./play.php?gn=$1
RewriteRule ^([a-z]+)\/?$ $1.php [NC]
ErrorDocument 404 /pagenotfound.php
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
当我在 localhost (XAMPP) 中进行开发时,我在访问干净的 URL(使用上面的 htaccess 代码)时没有问题,例如localhost/MySite/play/foo、或.localhost/MySite/category/actionlocalhost/MySite/search/lolollocalhost/MySite/users/myaccount
这显然意味着上面的 .htaccess 代码在我的本地主机服务器中就像一个魅力。然后我把上面的代码上传到一个共享的基于Apache的linux服务器上,遇到了一些奇怪的问题——
https://example.com/category/blabla工作正常,也是如此https://example.com/search/blabla- 但是 URL
https://example.com/play/xyz并https://example.com/users/anyaction停止工作。我的意思是,页面加载正常,站点在那里,但没有$_GET值传递给 PHP 脚本。因此,我无法获得参数gn和action. (见上面的代码) - 我什至尝试在脚本中
var_dump对数组进行 -ing$_GET,它们返回一个空数组,这意味着没有值被发送到脚本。
请检查我的 .htaccess 代码。我对 .htaccess 完全陌生,上面的代码只是复制的。我将非常感谢在这件事上的任何帮助。