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

Php 将目录名添加到SEF url中,并传递id值,而不在url中使用它,php,.htaccess,url-rewriting,sef,Php,.htaccess,Url Rewriting,Sef,我是.htaccess和rewrite函数的新手。 我已经搜索了很多页面,但找不到解决方案。 我的问题是: 我的kurum.php文件中有以下格式的URL: fxrehber.com/kurum.php?id=$krmID&sef=$sef 因此,我的正常url是: http://fxrehber.com/kurum.php?id=7&sef=ata-外汇 my.htaccess的相关部分是: <IfModule mod_rewrite.c> Options +Foll

我是.htaccess和rewrite函数的新手。 我已经搜索了很多页面,但找不到解决方案。 我的问题是:

我的kurum.php文件中有以下格式的URL:

fxrehber.com/kurum.php?id=$krmID&sef=$sef
因此,我的正常url是:

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

my.htaccess的相关部分是:

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

选项+FollowSymlinks
重新启动发动机
重写规则^([0-9]+)-([a-zA-Z0-9-\]+)$/kurum.php?id=$1&sef=$2
因此,我可以获得以下格式的SEF URL:

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

我有两个问题:


一,。在不将kurum.php文件移动到新目录的情况下,是否可以使用.htaccess将此url更改为此格式

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

(我可以通过.htaccess添加“/kurumlar”目录,但我的css和图像链接无法工作)

二,。我是否可以传递id值而不在SEF url中提及它,如下所示:

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

如果我不能这样做,我是否只需要使用$sef变量从数据库中选择文章?这有缺点吗

我希望这足以解释我的问题。
谢谢。

1。在不将kurum.php文件移动到新目录的情况下,是否可以使用.htaccess将此url更改为此格式

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>

选项+FollowSymlinks
重新启动发动机
重写规则^kurumlar\/([0-9]+)-([a-zA-Z0-9-\+)$/kurum.php?id=$1&sef=$2
kurum.php:

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

二,。我是否可以传递id值而不在SEF url中提及它,如下所示:

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


仅当
ata-foreks
可以用作文章的唯一别名并代替id使用时

“这有缺点吗?”

对。按字符串搜索比按整数搜索慢。

1。在所有链接前面加上“/”之后,向url添加目录名就没有问题了。(顺便说一下,我没有使用$u请求,我不确定是否必须使用)2。我决定不使用ID,只使用alias…(它们不是很长的字符串)谢谢:)>“顺便说一下,我没有使用$\u请求,我不确定是否必须使用”。你不必使用它。我只是把它放到我的文件中,以确保所有变量都被.htaccess正确处理。