我一直试图用htaccess文件重写我的URL。 我的项目使用我的index.php作为它的基本控制器。 我使用get-value“naam”从数据库中获取页面。
实施例: localhost / YourDesigns / YDCMS / index.php?naam = home(显示主页) localhost / YourDesigns / YDCMS / index.php?naam = about(显示关于页面)
现在我要重写URLS,如下所示: localhost / YourDesigns / YDCMS / home(显示主页) localhost / YourDesigns / YDCMS / about(显示关于页面)
我自己做了一些htaccess的东西,我已成功从网址中删除了“index.php”,但“naam”仍然存在。
如何删除此内容? 这是我目前的htaccess文件:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /YourDesigns/YDCMS/index.php?naam=/$1 [L]
提前致谢:)
答案 0 :(得分:1)
我认为你看待这个过程的方式并不完全正确,如果你想像你说localhost/YourDesigns/YDCMS/home
那样显示网址,你必须首先将你的html内容中的网址替换为该格式,然后使用RewriteRule你在内部调用正确的路径:
RewriteRule ^desired_url_path/([a-z0-9\-]+)$ /base_url_path/index.php?naam=$1 [L]
这样当用户点击链接时,Apache服务器将使用上述正则表达式来转换网址,该规则基本上是这样的:基本网址之后的所有内容都是在index.php上传递的参数值。 当然,可以修改正则表达式以满足您的需要,我在上面写的是一个基本的字符串模式。