在过去的 24 小时里,我一直在这里和通过搜索谷歌来寻找我的问题的解决方案,但我一直找不到任何东西。抱歉,如果这在任何地方重复。
对于我网站的最后一个版本,用 php 编写,我只有一个索引页面,我使用这样的请求来获取正确的页面:
?public=view/thispage
?page=account/loggedin
我现在正在编写该网站的新版本,也是在 php 中,并且我正在尝试使其具有搜索引擎友好的 url/slugs 例如
/page/view/thispage
/account/login
我已经设法让虚拟子域为每个客户端工作,使用下面代码的顶部,我已经设法让 slug 页面使用底部工作。
我遇到的问题是表单,例如用于注册站点、编辑用户配置文件等的表单。我在这个站点上读到,使用 apache 重写 $_POST 变量应该传递给脚本,不像重定向,但我正在使用重写,当任何表单数据传递给 slug(例如 /profile/edit)时它不起作用,尽管如果它传递给 virtualsubdomain.mydomain.com/test.php 例如它确实.
谁能帮助我并找到一种方法来修复下面的 htaccess 文件并允许将 $_POST vars 传递给我的 slug 脚本(下面代码中的 index.php)?我可能只是缺少一件小事。
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.mydomainhere.org
RewriteCond %{HTTP_HOST} ^(.+).mydomainhere.org/^(.+)
RewriteRule ^([^/]*)$ http://mydomainhere.org [P,L]
ErrorDocument 404 /index.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /index.php
</IfModule>
我无法弄清楚为什么发布变量可以被仅存在于虚拟子域中的 php 文件读取,但是在将它们发布到 slug(例如 /profile/editprofile)时无法读取它们。我的服务器上的全局变量已关闭,但以下只是显示默认的空白变量,因此它们显然没有被传递。
$test = ''; //define the variable to please global vars off
$test = $_POST["namehere"];
echo $test;
任何帮助,将不胜感激。除了您可能知道的自定义错误文件之外,我对使用 htaccess 文件还很陌生。