Table of Contents
回复内容:
Home Backend Development PHP Tutorial 比较大的项目 要不要把url都统一到一个表里面?大家都是怎么做的?

比较大的项目 要不要把url都统一到一个表里面?大家都是怎么做的?

Jun 06, 2016 pm 08:41 PM
apache nginx php web development

<code>是这样的,最近项目越来越大 包括 手机端 微信嵌入网站  支付宝服务窗嵌入网站  PC端(下面有很多二级域名 比如 passport api  service) 等等 

我在考虑 是不是要把整站的url 路径 都写入到一个表里面 然后用统一的一个函数 来调用url  

否则的话 比如说 http:xxx/article  这个详细页面 url  站内各个模块都有关联 如果这个url更改了 那么代码里面 很多关于这个页面的 url 定向  都要修改  我在考虑是不是 把所有的url  (包括 后台和前台) 都集中到一个表 里面 管理  然后每个url 对应有 权限  别名  rewrite 等等属性 这样 调用的时候 比如说这个  geturl("article")  根据article这个别名 来调用 url  不管url怎么改变 还是 做了 rewrite 都不用改代码了 

不知道各位大神是怎么做的呢?
</code>
Copy after login
Copy after login

回复内容:

<code>是这样的,最近项目越来越大 包括 手机端 微信嵌入网站  支付宝服务窗嵌入网站  PC端(下面有很多二级域名 比如 passport api  service) 等等 

我在考虑 是不是要把整站的url 路径 都写入到一个表里面 然后用统一的一个函数 来调用url  

否则的话 比如说 http:xxx/article  这个详细页面 url  站内各个模块都有关联 如果这个url更改了 那么代码里面 很多关于这个页面的 url 定向  都要修改  我在考虑是不是 把所有的url  (包括 后台和前台) 都集中到一个表 里面 管理  然后每个url 对应有 权限  别名  rewrite 等等属性 这样 调用的时候 比如说这个  geturl("article")  根据article这个别名 来调用 url  不管url怎么改变 还是 做了 rewrite 都不用改代码了 

不知道各位大神是怎么做的呢?
</code>
Copy after login
Copy after login

这个可以有,最好是将mysql的url缓存到memcache或redis,不然每个请求到去查表的话,性能就不好了。

可以这样做,点评很长一段时间就是如此的。
现在因为有了SLB,软负载均衡,所以配置变的复杂了,基本都在SLB层面上做掉了。
另外这样的好处还有就是方便AB Test等同URL的应用切换。

不过有几点要注意:
1、URL匹配规则的顺序,有时会出现先前的规则覆盖后面的规则,那么URL路由就到不到后面规则的解析器。
2、URL匹配的性能,灵活利用多种匹配规则,例如starts_with, ends_with,等以及正则的写法对性能的影响。
3、楼上提到放到memcached或redis里,其实因为URL规则的访问密集性以及整体不会太大,反而是建议就放在本地内存中。

php的我不知道,不过我知道别的语言里,大多路由都需要手动注册,然后通过模版里的helper用路由名称来渲染路径,如django的urlfor

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP: Handling Databases and Server-Side Logic PHP: Handling Databases and Server-Side Logic Apr 15, 2025 am 12:15 AM

PHP uses MySQLi and PDO extensions to interact in database operations and server-side logic processing, and processes server-side logic through functions such as session management. 1) Use MySQLi or PDO to connect to the database and execute SQL queries. 2) Handle HTTP requests and user status through session management and other functions. 3) Use transactions to ensure the atomicity of database operations. 4) Prevent SQL injection, use exception handling and closing connections for debugging. 5) Optimize performance through indexing and cache, write highly readable code and perform error handling.

PHP's Purpose: Building Dynamic Websites PHP's Purpose: Building Dynamic Websites Apr 15, 2025 am 12:18 AM

PHP is used to build dynamic websites, and its core functions include: 1. Generate dynamic content and generate web pages in real time by connecting with the database; 2. Process user interaction and form submissions, verify inputs and respond to operations; 3. Manage sessions and user authentication to provide a personalized experience; 4. Optimize performance and follow best practices to improve website efficiency and security.

PHP and Python: Code Examples and Comparison PHP and Python: Code Examples and Comparison Apr 15, 2025 am 12:07 AM

PHP and Python have their own advantages and disadvantages, and the choice depends on project needs and personal preferences. 1.PHP is suitable for rapid development and maintenance of large-scale web applications. 2. Python dominates the field of data science and machine learning.

How to check whether nginx is started How to check whether nginx is started Apr 14, 2025 pm 01:03 PM

How to confirm whether Nginx is started: 1. Use the command line: systemctl status nginx (Linux/Unix), netstat -ano | findstr 80 (Windows); 2. Check whether port 80 is open; 3. Check the Nginx startup message in the system log; 4. Use third-party tools, such as Nagios, Zabbix, and Icinga.

How to configure cloud server domain name in nginx How to configure cloud server domain name in nginx Apr 14, 2025 pm 12:18 PM

How to configure an Nginx domain name on a cloud server: Create an A record pointing to the public IP address of the cloud server. Add virtual host blocks in the Nginx configuration file, specifying the listening port, domain name, and website root directory. Restart Nginx to apply the changes. Access the domain name test configuration. Other notes: Install the SSL certificate to enable HTTPS, ensure that the firewall allows port 80 traffic, and wait for DNS resolution to take effect.

How to check whether nginx is started? How to check whether nginx is started? Apr 14, 2025 pm 12:48 PM

In Linux, use the following command to check whether Nginx is started: systemctl status nginx judges based on the command output: If "Active: active (running)" is displayed, Nginx is started. If "Active: inactive (dead)" is displayed, Nginx is stopped.

How to build a Zookeeper cluster in CentOS How to build a Zookeeper cluster in CentOS Apr 14, 2025 pm 02:09 PM

Deploying a ZooKeeper cluster on a CentOS system requires the following steps: The environment is ready to install the Java runtime environment: Use the following command to install the Java 8 development kit: sudoyumininstalljava-1.8.0-openjdk-devel Download ZooKeeper: Download the version for CentOS (such as ZooKeeper3.8.x) from the official ApacheZooKeeper website. Use the wget command to download and replace zookeeper-3.8.x with the actual version number: wgethttps://downloads.apache.or

How to start nginx server How to start nginx server Apr 14, 2025 pm 12:27 PM

Starting an Nginx server requires different steps according to different operating systems: Linux/Unix system: Install the Nginx package (for example, using apt-get or yum). Use systemctl to start an Nginx service (for example, sudo systemctl start nginx). Windows system: Download and install Windows binary files. Start Nginx using the nginx.exe executable (for example, nginx.exe -c conf\nginx.conf). No matter which operating system you use, you can access the server IP

See all articles