【发布时间】:2017-09-17 14:37:04
【问题描述】:
我的 .htaccess 文件。我有 index.php 和 movies.php。 www.website.com/movies 在本地主机和实时服务器中都可以正常工作。 但是 www.website.com/movies/movie-title 在本地主机中完美运行,但在实时服务器中却不行。我不知道问题所在。 在movies.php页面中,如果我们使用www.website.com/movies,我将显示标题列表,如果我们通过尝试访问www.website.com/movies/movie-title,我将尝试显示单个元素使用 $_GET['u']。
打开重写引擎
重写引擎开启
为 index.php 重写
重写规则 ^home$ index.php [NC,L]
为moviespage.php重写
重写规则 ^movies$ movies.php [NC,L]
为 movies.php?u=xxxxx 重写
RewriteRule ^movies/([0-9a-zA-Z_-]+)$ movies.php?u=$1 [NC,L]
【问题讨论】:
-
您是遇到错误还是 .htaccess 文件不存在?如果是后者,请尝试在文件中添加错字并保存并重试。如果它仍然像没有文件一样,那么您的 Web 服务器可能不是 Apache 它可能没有配置为允许 htaccess 文件
-
它不会抛出任何错误,但即使使用 /movies 或 /movies/title 也会显示相同的数据列表
-
您是否尝试过更新movies.php 以记录$_GET["u"] 的内容并调试流程?也许这不是重写,而是 PHP 如何处理数据......
-
您可能还想建立一个基本 href 以确保从正确的路径加载任何相对路径依赖项(如 JS 文件)而不是尝试从相对“电影”子文件夹加载(并由 htaccess 处理)