将目录名称添加到SEF URL中,并在url中不使用它而传递id值

时间:2012-11-14 10:16:14

标签: php .htaccess url-rewriting sef

我是关于.htaccess和重写功能的新手。 我搜索了很多页面,但找不到解决方案。 这是我的问题:

我的kurum.php文件中有这些格式的网址:

fxrehber.com/kurum.php?id=$krmID&sef=$sef

所以我的正常网址是:

http://fxrehber.com/kurum.php?id=7&sef=ata-foreks

我的.htaccess的相关部分是:

<IfModule mod_rewrite.c>
  Options +FollowSymlinks
  RewriteEngine On
  RewriteRule ^([0-9]+)-([a-zA-Z0-9-_]+)$ /kurum.php?id=$1&sef=$2
</IfModule>

所以我可以用这种格式获得SEF网址:

http://fxrehber.com/7-ata-foreks

我有两个问题:

1。可以使用.htaccess将此网址更改为此格式,而无需将kurum.php文件移动到新目录中吗?

http://fxrehber.com/kurumlar/7-ata-foreks

(我可以通过.htaccess添加“/ kurumlar”目录,但我的css和图片链接不起作用)

2。我是否可以传递id值而不在SEF网址中提及它:

http://fxrehber.com/kurumlar/ata-foreks (这是我的最佳选择)

如果我不能这样做,我是否必须只使用$ sef变量来从数据库中选择文章?对此有不利之处吗?

我希望这是对我的问题的充分解释。 谢谢。

1 个答案:

答案 0 :(得分:1)

1。可以使用.htaccess将此网址更改为此格式,而无需将kurum.php文件移动到新目录中吗?

http://fxrehber.com/kurumlar/7-ata-foreks

(我可以通过.htaccess添加“/ kurumlar”目录,但我的css和图片链接不起作用)


我在php文件中使用了图像的完整路径,它适用于: htaccess的:

<IfModule mod_rewrite.c>
  Options +FollowSymlinks
  RewriteEngine On
  RewriteRule ^kurumlar\/([0-9]+)-([a-zA-Z0-9-_]+)$ /kurum.php?id=$1&sef=$2
</IfModule>

kurum.php:

<?php
    var_dump($_REQUEST);
?>
<img src="/sites/default/files/1.png">

2。我是否可以传递id值而不在SEF网址中提及它:

http://fxrehber.com/kurumlar/ata-foreks(这是我的最佳选择)


仅当ata-foreks可以用作文章的唯一别名并使用而不是id。

  

“这有不妥之处吗?”

是。按字符串搜索较慢,然后按整数搜索。