网站运行在我们无法访问.htaccess
文件的网页主机上。但是,我想为用户友好的URL进行URL重写。在不使用htaccess的情况下使用PHP进行URL重写
例如原始地址
www.example.com/file?q=name
预期网址
www.example.com/file/name
网站运行在我们无法访问.htaccess
文件的网页主机上。但是,我想为用户友好的URL进行URL重写。在不使用htaccess的情况下使用PHP进行URL重写
例如原始地址
www.example.com/file?q=name
预期网址
www.example.com/file/name
正如其他人所说,只需使用链接如/index.php/nice/looking/url
。
在URL中间可能看起来有点怪“的index.php”,但我不认为这是可能有它看起来没有的.htaccess
都好,你可以问你的主机供应商任何重定向指向/index.php的网址,以便您无需在网址中添加/index.php
即可处理网址重写。
然后,您可以使用正则表达式匹配来检测包含哪个文件。
preg_match('@[/]{1}([a-zA-Z0-9]+)@', $_SERVER["PATH_INFO"], $matches)
($比赛将包含阵列中的全部网址的“部件”)
小心,包括文件,使用白名单所以你一定没有人能够加载内部文件。
检查这个帖子链接你的CSS,HTTP://什么-在线。 info/science-and-tutorials/104/how-to-writing-PHP-SEO-friendly-URLs-without-htaccess /将使用HTACCESS文件巧妙地解决你的URL重写 – 2017-01-13 08:17:14
你最好的选择将是有网址,像这样的:
www.example.com/index.php/file/name
你会来,虽然重写PHP代码。
为阿利克斯阿克塞尔建议您可以使用
www.example.com/index.php/file/name
则可以使用$_SERVER['REQUEST_URI']
处理URL。
在这种情况下,最好使用'$ _SERVER ['PATH_INFO']'而不是'$ _SERVER ['REQUEST_URI']'。 – 2010-01-24 11:34:46
此解决方法看起来不错。一个问题,当我使用www.domain-name.com/index.php/filename它看起来像当前目录更改 和所有css格式化丢失和相对导航也无法正常工作。 有什么建议。您的每一个文件的参考 – Vivart 2010-01-24 12:12:17
添加/基本参考像 ''也 使用基本参考'SRC = “/媒体/ css.css”' – Pentium10 2010-01-24 12:37:56
如果你有一个Apache服务器,并且启用了AcceptPathInfo,那么你可以使用你写的URL。如果/file
是常规文件,则/file/name
的请求将被自动重写为/file
,PATH_INFO值/name
。
试试这个
www.example.com/file?q=name
到
www.example.com/name
(优于www.example.com/file/name
)
从项目的根文件夹打开.htaccess
并添加以下代码
Options +FollowSymLinks
RewriteEngine On
RewriteRule \.(js|css|jpe?g|png|gif)$ - [L]
RewriteRule "^([ \w-]+)/?$" /file?q=$1 [L,QSA]
这解决了您的问题。看帖子如何rewrite URL in .htaccess
只是举例 website.user的文章部分提交了一篇文章,并且生成了像www.domain-name/articles?cat = 3&id = 34这样的动态url,但是我想要这个www。domain-name/articles/cat-name/article-name – Vivart 2010-01-24 11:29:26