我不知道如何设置我的index.php文件与Nginx的重写规则,它会像下面的例子一样工作。
如果我访问的url,它给了我404错误没有findinstad回声'你好'。
url:
http://www.example.com/directory/sub-directory/
/子目录/从给定的URL实际上不是真正的目录里面/目录/。 如果我访问的URL,我得到了404错误 – 这是真的好,但/子目录/是友好的url(没有查询?参数=价值)。
/子目录/不是固定值(在这个例子下面),它可以是/子目录 – 新/ – 依赖。
那么,对于URL中的/ value / after / directory /中的任何值,如果我访问那种types的URL,怎么会不会得到404错误?
/ directory /中的Index.php
$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; $wanted = "sub-directory"; $tokens = explode('/', $actual_link); $result = $tokens[sizeof($tokens)-2]; // result is "sub-directory" if($wanted == $result) { echo "hello"; }
Nginx的:
location /directory { try_files $uri $uri/ /directory/$uri; error_page 404 =200 /directory }
我应该为规则添加一些参数,如:location / directory $ 1? 如果是这样,哪一个,如何得到它的工作?
任何人有一些想法?
感谢分享和信息!
在nginx中做友好URL的通常方式是这样的:
location /directory { try_files $uri $uri/ @rewrites; } location @rewrites { rewrite ^ /directory/index.php; }
此configuration假定您的root指令指向/directory所在的/directory 。
所以,在这里,如果文件或目录存在于真正的文件系统中,nginx将首先尝试。 如果该文件不存在,则将请求转发给您的PHP文件。 当然,你需要让你的PHP处理模块在nginx中正确configuration。